<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>27.Promise-then方法</title>
</head>
<body>
    <script>
        //创建一个Promise对象
        const p = new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve('获取到用户数据')
            },1000)
        })

        //调用then方法 返回的结果是一个promise对象 对象状态由回调函数的执行结果决定
        //1. 如果回调函数中返回的结果是 非Primise类型的属性，状态为成功，返回值为对象的成功的值

        const result = p.then(function(value){
            console.log(value);
            //1. 非promise 类型的属性  不返回就是undefined
            //return 'iloveyou';
            //2. 是promise 内部promise对象的状态决定外部对象的状态
            /* return new Promise((resolve,reject)=>{
                //resolve('ok');
                reject('err');
            }) */
            // 3.抛出错误 状态也是一个失败的promise状态，错误的值就是抛出的值
            throw new Error('出错了！！');
            
            // 所以Promise 是可以链式调用的  可以通过这个方式避免回调地狱
            p.then(function(value){

            },function(reason){

            })
        },function(reason){
            console.error(reason);
        })
        console.log(result);
    </script>
</body>
</html>